﻿using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
using Atendex.Containex;
using Atendex.Dominio;
using Atendex.Infraestrutura.Repositórios;

namespace Atendex.Web
{
    public partial class CadastrarTipoSolicitacao : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                CarregarAreaNegocios();
            }
            else
            {
                lblMessage.Visible = false;
            }
        }

        private void CarregarAreaNegocios()
        {
            var repositorio = new RepositorioAreaNegocio();
            var areas = repositorio.ObtemTodos();
            
            foreach (IAreaNegocio area in areas)
            {
                ddlAreaNegocio.Items.Add(new ListItem(area.Nome, area.Id.ToString()));
            }
        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                var repositorioArea = new RepositorioAreaNegocio();
                var repositorioTipoSolicitacao = new RepositorioTipoSolicitacao();

                int areaId = int.Parse(ddlAreaNegocio.SelectedValue);

                ITipoSolicitacao tipoSolicitacao = Container.CriarTipoSolicitacao(
                    txtNome.Text, repositorioArea.ObtemPorId(areaId));
                tipoSolicitacao.Descricao = txtDescricao.Text;

                repositorioTipoSolicitacao.Salvar(tipoSolicitacao);
                lblMessage.Text = "Cadastro com sucesso.";
            }
            catch (Exception ex)
            {
                lblMessage.Text = ex.Message;
            }
            finally
            {
                lblMessage.Visible = true;
            }
        }
    }
}
